package com.lzq.mq.broker.model;

import lombok.Data;

import java.util.concurrent.atomic.AtomicInteger;

/**
 * 消费队列模型
 */
@Data
public class ConsumeQueueModel {

    /**
     * 队列ID, 对应主题队列文件夹名
     */
    private Integer id;
    /**
     * 消费队列的文件名
     */
    private String fileName;
    /**
     * 最大偏移量
     */
    private Integer offsetLimit;

    /**
     * 当前偏移量, 即写入的最新位置
     */
    private AtomicInteger latestOffset;
    /**
     * 最小偏移量
     */
    private Integer lastOffset;

    /**
     * 获取偏移量差
     * @return 偏移量差
     */
    public int countDiff() {
        return offsetLimit - latestOffset.get();
    }
}
